/**
 * utilities.js - 通用工具函数集合
 * 包含日志、格式化和其他辅助功能
 */

// 调试日志函数
function logDebug(message) {
    const now = new Date().toLocaleTimeString();
    const logEntry = `[${now}] ${message}`;
    console.log(logEntry);

    // 显示在页面上
    const debugInfo = $('#uploadDebugInfo');
    if (debugInfo.length > 0) {
        debugInfo.prepend(logEntry + '\n');
        $('#debugCard').show();
    }
}

// 格式化时间戳
function formatTime(timestamp) {
    if (!timestamp) return '未知';
    const date = new Date(timestamp * 1000); // 转换为毫秒
    return date.toLocaleString();
}

// 格式化文件大小
function formatFileSize(bytes) {
    if (!bytes || bytes === 0) return '0 B';
    const units = ['B', 'KB', 'MB', 'GB', 'TB'];
    const i = Math.floor(Math.log(bytes) / Math.log(1024));
    return (bytes / Math.pow(1024, i)).toFixed(2) + ' ' + units[i];
}

// 复制文本到剪贴板
function copyToClipboard(elementId) {
    const text = document.getElementById(elementId).innerText;
    if (!text) {
        showToast('提示', '没有可复制的内容', 'warning');
        return;
    }

    navigator.clipboard.writeText(text)
        .then(() => {
            showToast('成功', '已复制到剪贴板', 'success');
        })
        .catch(err => {
            console.error('复制失败: ', err);
            showToast('错误', '复制失败: ' + err, 'danger');

            // 备用方案
            const textarea = document.createElement('textarea');
            textarea.value = text;
            document.body.appendChild(textarea);
            textarea.select();
            try {
                document.execCommand('copy');
                showToast('成功', '已复制到剪贴板', 'success');
            } catch (e) {
                showToast('错误', '复制失败，请手动复制', 'danger');
            }
            document.body.removeChild(textarea);
        });
}